#ifndef _RING_ARRAYS_H_
#define _RING_ARRAYS_H_
#include "iostream"
#include "../log/log_err.h"
#include "string.h"

#define BOOL int
#define TRUE 1
#define FALSE 0

struct uint8_array {
    uint8_t* data;
    int length;
};

struct ring_arrays {
    uint8_t* data;
    uint32_t start;
    uint32_t end;
    uint32_t size;
};

/* 创建缓冲区 默认大小 */
struct ring_arrays* ring_arrays_create(void);
/* 创建缓冲区 指定大小 */
struct ring_arrays* ring_arrays_create_of_size(uint32_t size);
/* 释放缓冲区 */
void ring_arrays_destroy(struct ring_arrays* array);
/* 清空缓冲区内容 */
BOOL ring_arrays_clear(struct ring_arrays* array);
/* 向缓冲区添加 buffer */
void ring_arrays_add_buffer(struct ring_arrays* array, uint8_t* buffer, uint32_t len);
/* 获取缓冲区数据 */
struct uint8_array ring_arrays_get_buffer(struct ring_arrays* array);
/* 删除缓冲区前offset个数据 */
BOOL ring_arrays_set_offset(struct ring_arrays* array, uint32_t offset);

#endif /* _RING_ARRAYS_H_ */
